package com.bookstore.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bookstore.entity.Order;
import com.bookstore.entity.OrderItem;
import java.util.List;

public interface OrderService extends IService<Order> {
    /**
     * 创建订单
     * @param userId 用户ID
     * @param orderItems 订单详情列表
     * @param shippingAddress 收货地址
     * @param paymentMethod 支付方式
     * @return 订单ID
     */
    Integer createOrder(Integer userId, List<OrderItem> orderItems, String shippingAddress, String paymentMethod);

    /**
     * 获取用户订单列表
     * @param userId 用户ID
     * @param page 页码
     * @param size 每页大小
     * @return 订单列表
     */
    IPage<Order> getUserOrders(Integer userId, int page, int size);

    /**
     * 获取订单详情
     * @param orderId 订单ID
     * @return 订单详情列表
     */
    List<OrderItem> getOrderItems(Integer orderId);

    /**
     * 更新订单状态
     * @param orderId 订单ID
     * @param status 订单状态
     * @return 是否更新成功
     */
    boolean updateOrderStatus(Integer orderId, String status);

    /**
     * 取消订单
     * @param orderId 订单ID
     * @return 是否取消成功
     */
    boolean cancelOrder(Integer orderId);
} 